CREATE PROCEDURE RRHH_MODIFICAR_EMPLEADO_L 
@IDEMPLEADO INTEGER,
@NOMBRE VARCHAR(100),
@APPATERNO VARCHAR(100),
@APMATERNO VARCHAR(100),
@TIPODOCIDENTIDAD VARCHAR(50),
@DOCIDENTIDAD VARCHAR(20),
@FECNACIMIENTO DATETIME,
@SEXO VARCHAR(20),
@DIRECCION VARCHAR(200),
@TELCASA VARCHAR(20),
@TELCELULAR VARCHAR(20),
@TELEMERGENCIA VARCHAR(20),
@CONTACTOEMERGENCIA VARCHAR(200),
@AREA VARCHAR(100),
@CARGO VARCHAR(100),
@ESTADO VARCHAR(50),
@ESTADOTRAN INTEGER OUTPUT
AS

--SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRANSACTION

DECLARE @IDTD INTEGER
DECLARE @IDAR INTEGER
DECLARE @IDCA INTEGER
DECLARE @IDES INTEGER

BEGIN TRY
	--buscamos el id del tipo de documento
	SET @IDTD = (SELECT IDTIPODOC FROM TIPODOCUMENTO
		    WHERE DESCRIPCION = @TIPODOCIDENTIDAD)
	--buscamos el id del area
	SET @IDAR = (SELECT IDAREA FROM AREA
		    WHERE DESCRIPCION = @AREA)
	--buscamos el id del cargo
	SET @IDCA = (SELECT IDCARGO FROM CARGO
		    WHERE DESCRIPCION = @CARGO AND IDAREA = @IDAR)
	--buscamos el id del estado
	SET @IDES = (SELECT IDESTADO FROM ESTADOEMPLEADO
		    WHERE DESCRIPCION = @ESTADO)
		    
	UPDATE EMPLEADO
	SET NOMBRE = @NOMBRE, APPATERNO = @APPATERNO, APMATERNO = @APMATERNO, DOCIDENTIDAD = @DOCIDENTIDAD,
	    SEXO = @SEXO, DIRECCION = @DIRECCION, TELCASA = @TELCASA, TELCELULAR = @TELCELULAR, TELEMERGENCIA = @TELEMERGENCIA,
	    CONTACTOEMERGENCIA = @CONTACTOEMERGENCIA, IDTIPODOC = @IDTD, IDCARGO = @IDCA, IDAREA = @IDAR,
	    IDESTADO = @IDES
	WHERE IDEMPLEADO = @IDEMPLEADO
	
	SET @ESTADOTRAN = 1
	COMMIT TRANSACTION
END TRY
BEGIN CATCH
	SET @ESTADOTRAN = 0
	ROLLBACK TRANSACTION
END CATCH

